// 思路： 就是新生产一个节点， 当current != null 且 current.next != null 时候，将current.nex 和 current 节点按顺序放置到prev 的next
//       并且奖current 和 prev 指针都向后移动俩位
//       结束循环后会出现俩种情况， 1种是 还有一位，直接添加进去即可
//       但是这种操作不满足leetcode 题意： 给你一个链表，两两交换其中相邻的节点，并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题（即，只能进行节点交换）。
//       因此官方做法即是直接对节点进行操作

var swapPairs = function(head) {
    let prevhead = new ListNode(-1);
    let prev = prevhead;
    let current = head; // 标记头节点
    while(current != null && current.next != null){
        prev.next = current.next;
        prev.next.next = current;
        prev = prev.next.next;
        current = current.next.next;
    }
    if(current !=null){
        prev.next = current
        prev = prev.next
    }
    prev.next = null
    return prevhead.next
};